package com.ruoyi.drawing.api.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.FieldValueConvert;
import com.ruoyi.common.core.enums.FieldKeyValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 图档中心模型文档返回参数
 *
 * @author ZhangYu
 * @date 2024-04-29
 */
@Data
@ApiModel(value = "DrawingModelDocumentVO", description = "图档中心模型文档返回参数")
public class DrawingModelDocumentVO {

    /**
     * 唯一id
     */
    @ApiModelProperty("唯一主键")
    private Long id;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private String createBy;

    /**
     * 模型区域id
     */
    @ApiModelProperty("模型区域id")
    private Long modelRegionId;

    /**
     * 模型名称
     */
    @ApiModelProperty("模型名称")
    private String modelName;

    /**
     * 模型类型
     */
    @FieldValueConvert(value = {FieldKeyValue.MODEL_TYPE_ONE, FieldKeyValue.MODEL_TYPE_TWO})
    @ApiModelProperty("模型类型")
    private String modelType;

    /**
     * 模型专业
     */
    @ApiModelProperty("模型专业")
    private String modelSpecialty;

    /**
     * 上传时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("上传时间")
    private Date uploadTime;

    /**
     * 版本编号
     */
    @ApiModelProperty("版本编号")
    private String versionNumber;

    /**
     * 区域名称
     */
    @ApiModelProperty("区域名称")
    private String regionName;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;

    /**
     * 实例图片地址
     */
    @ApiModelProperty("实例图片地址")
    private String sampleGraph;

    /**
     * 下载次数
     */
    @ApiModelProperty("下载次数")
    private Integer downloadsNumber;

    /**
     * 文档编码
     */
    @ApiModelProperty("文档编码")
    private String documentCode;

    /**
     * 文件列表
     */
    @ApiModelProperty("文件列表")
    private List<FileVO> fileList;

}
